package hermes.persistencia.mapeadores;

import hermes.controle.ClasseNegocio;
import hermes.controle.Unidade;

public class MapeadorUnidade implements ClasseMapeadora {

    private String tabela = "unidades";
    private String camposBancoDados[] = {"unidade", "descUnidade"};
    private String identificadorObjeto = "idObjUnidade";

    public MapeadorUnidade() {
    }

    @Override
    public String sqlInserir(Object o) {
        Unidade user = (Unidade) o;
        String sql = "insert into " + tabela + " (" + nomesCamposBD() + ") values (" + user.getunidade() + "," + user.getdescUnidade() + ");";
        return sql;
    }

    @Override
    public String sqlExcluir(Integer idObjeto) {
        String sql = "delete from " + tabela + " where " + identificadorObjeto + " = " + idObjeto + ");";
        return sql;
    }

    //falta implementar
    @Override
    public String sqlAlterar(Object o) {
        
        return null;
    }

    //falta implementar
    @Override
    public String sqlBuscar(Integer idObjeto) {
        String sql = "select " + identificadorObjeto + "," + nomesCamposBD() + " from " + tabela + " where " + identificadorObjeto + "=" + idObjeto;
        return sql;
    }

    @Override
    public String nomesCamposBD() {
        String nomesCamposBancoDados = "";
        nomesCamposBancoDados = camposBancoDados[0];
        for (int i = 1; i < camposBancoDados.length; i++) {
            nomesCamposBancoDados = nomesCamposBancoDados + ", " + camposBancoDados[i];
        }
        nomesCamposBancoDados = nomesCamposBancoDados.substring(0, nomesCamposBancoDados.length());
        int i = nomesCamposBancoDados.length();
        return nomesCamposBancoDados;
    }

    @Override
    public String sqlListar() {
        String sql = null;
        sql = "select " + identificadorObjeto + ", " + nomesCamposBD() + " from " + tabela;
        return sql;
    }

    @Override
    public Integer qtdCamposBD() {
        return camposBancoDados.length + 1;
    }

    @Override
    public ClasseNegocio getIntanciaClasseNegocio() {
        return new Unidade();
    }

    @Override
    public String sqlBuscar(ClasseMapeadora classeMapeadora, String campo, String argumento) {
        String sql = "select * from "+tabela+" where "+campo+ "="+argumento + ";";
        return sql;
    }

    @Override
    public String[] getCamposBancoDados() {
        return camposBancoDados;
    }
}
